<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
 				xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
  				xmlns:c="http://java.sun.com/jstl/core" xmlns:p="http://primefaces.org/ui"
  				template="/Administrador/Principal/MasterPage.xhtml">
  				
  	<ui:define name="head">	
		<script type="text/javascript" src="#{request.contextPath}/Administrador/AdministrarReglas/Js/ReglaJs.js"></script>
		<script type="text/javascript" src="#{request.contextPath}/javascript/ValidacionUtil.js"></script>
    </ui:define>
    
     <ui:define name="body">
		<h:form id="frmReglaMantenimiento">
			<p:panel id="pnl">
			<f:facet name="header" >
				<h:panelGrid columns="1" 
					cellpadding="3" 
					cellspacing="3" 
					columnClasses="pnlTitle !important">
  					<h:outputLabel  value="#{reglaBean.strTitulo}"  
  						styleClass="title2 !important"/>	
    				<h:outputLabel  value="APP #{reglaBean.strCabecera}"  
    					styleClass="subTitle !important"  />	
  				</h:panelGrid>
			</f:facet>
			<p:fieldset   id="fsDatosGenerales" 
				legend="Datos generales" 
				style="width:725px;height:160px;">
			<h:inputHidden type="hidden" 
				value="#{reglaBean.reglaDTO.idRegla}" 
				id="idReglaDTO" />
			<h:panelGrid columns="2" 
				cellpadding="3" 
				cellspacing="3" >
				<h:panelGrid columns="2" 
					cellpadding="3" 
					cellspacing="3"  
					columnClasses="anchoGeneralInputText3, anchoGeneralInputText2">
					<h:outputLabel value="#{label['default.label.administrarReglas.lblNomb']}" 
						styleClass="anchoGeneralInputText3" />
					<p:inputText  styleClass="anchoGeneralInputText2" 
						value="#{reglaBean.reglaDTO.nombre}"
						onkeypress="return formatoNombresDescripciones(event);" />
					<h:outputLabel value="#{label['default.label.administrarReglas.lblNombGuvnor']}" 
						styleClass="anchoGeneralInputText3" />
					<p:inputText styleClass="anchoGeneralInputText2"
						value="#{reglaBean.reglaDTO.nombreGuvnor}" 
						onkeypress="return formatoNombresDescripciones(event);" />
					<h:outputLabel value="#{label['default.label.administrarReglas.lblTipoEjecucion']}" 
						styleClass="anchoGeneralInputText3" />
					<p:selectOneMenu  id="cboTipoEjecucionDTO" value="#{reglaBean.reglaDTO.idTipoEjecucion}"> 
				  		<f:selectItems value="#{listadoBean.getListaTipoEjecucion()}"
							var="selectItem" 
							itemLabel="#{selectItem.label}"
							itemValue="#{selectItem.value}" />
							<p:ajax update="frmReglaMantenimiento:pnlPrincipal" 
								event="change" 
								listener="#{reglaBean.generarControles}"/>
			  	</p:selectOneMenu>
				
			</h:panelGrid>
			<h:panelGrid columns="1" 
				cellpadding="2" 
				cellspacing="2"
				columnClasses="textBox200 !important">
				<h:outputLabel value="#{label['default.label.administrarReglas.lblDescripcion']}"
					styleClass="textBox200 !important"/>
				<p:inputTextarea  
					rows="5" 
					cols="33" 
					autoResize="false" 
					styleClass="texArea200 !important" 
					value="#{reglaBean.reglaDTO.descripcion}" 
					onkeypress="return formatoTexto(event);" /> 
			</h:panelGrid>
		</h:panelGrid>
		</p:fieldset>
			<h:panelGrid id="pnlPrincipal" >	 
				<p:fieldset  rendered="#{reglaBean.bolRenderedTipoEjecucion}" 
					id="fsFuenteEntrada" legend="Fuente Entrada" style="width:725px;height:370px;">
						<div style="text-align: right;">
							<p:commandButton  value="#{label['default.label.btnAgregar']}" action="#{reglaBean.agregarReglaFuente}"  
	  							update=":frmReglaMantenimiento:tblReglaFuentes"/>
						</div>
						<p:spacer width="5"/> 	
						<p:dataTable id="tblReglaFuentes" 
							value="#{reglaBean.listaReglaFuenteDTO}" 
							var="reglaFuenteDTO" 
							paginator="true" 
							style="width:730px"  
							rows="5" 
							editable="true" 
							editMode="cell" 
							rowIndexVar = "rowInfo" 
							lazy="true" 
							dynamic="true" 
							widgetVar="tblReglaFuentes" 
							emptyMessage="#{label['default.emty.busqueda']}" 
							rowKey="reglaFuenteDTO.id"  >   		   			
			   				<p:column style="width:20px; text-align: center;">
					   			<f:facet name="header">  
									<h:outputText value="#{label['default.label.administrarReglas.lblItem']}" />  
									</f:facet>  
									<h:outputText value="#{reglaFuenteDTO.item}"  />					
							</p:column>
			   				<p:column style="width:200px !important">
					   				<f:facet name="header">  
									      <h:outputText value="#{label['default.label.administrarReglas.lblFuenteEntrada']}" />  
									</f:facet>  
									<p:selectOneMenu style="width: 200px !important;text-align: left;" 
										value="#{reglaFuenteDTO.idFuente}" >
									  	<f:selectItems style="width:200px !important;text-align: left;" 
									  		value="#{reglaBean.listaFuentesEntradaDTO}" 
									  		var="selectItem" 
									  		itemLabel="#{selectItem.label}" 
									  		itemValue="#{selectItem.value}" /> 
									  		<p:ajax update=":frmReglaMantenimiento:dlgRelacion" 
												event="change" 
												listener="#{reglaBean.recargarRelaciones(reglaFuenteDTO.id)}"/>
						  			</p:selectOneMenu>						
							</p:column>
			   				<p:column style="width:200px !important">
					   				<f:facet name="header">  
									      <h:outputText value="#{label['default.label.administrarReglas.lblEntidadesSalida']}" />  
									</f:facet>  
									<p:selectOneMenu style="width:200px !important;text-align: left;" 
										value="#{reglaFuenteDTO.claseEntidad}" >
									  	<f:selectItems style="width:200px !important;text-align: left;" 
									  		value="#{reglaBean.listaEntidadesDTO}" 
									  		var="selectLabel" 
									  		itemLabel="#{selectLabel.label}" 
									  		itemValue="#{selectLabel.idLabel}" /> 
									  	<p:ajax update=":frmReglaMantenimiento:dlgRelacion" 
											event="change" 
											listener="#{reglaBean.recargarRelaciones(reglaFuenteDTO.id)}"/>
						  			</p:selectOneMenu>						
							</p:column>				
							<p:column  style="text-align: center;width:70px;">
					   				<f:facet name="header">  
							      		<h:outputText value="#{label['default.label.administrarReglas.lblAcciones']}" /> 
							</f:facet>
							<p:spacer width="5"/> 	
							<h:panelGrid columns="2" cellpadding="0" cellspacing="0" >
								<p:commandButton  value="#{label['default.label.btnRelacionar']}" 
									action="#{reglaBean.relacionarReglaFuenteEntrada}"  
									oncomplete="mostrarDailog(xhr, status, args)"  
									update=":frmReglaMantenimiento:tblRelacionFuenteEntidad :frmReglaMantenimiento:dialogMensajePrincipal">
									<f:setPropertyActionListener target="#{reglaBean.idReglaFuente}" 
										value="#{reglaFuenteDTO.id}" />
								</p:commandButton> 
								<p:commandButton  value="#{label['default.label.btnEliminar']}" 
									action="#{reglaBean.eliminarReglaFuenteEntrada}" 
									update=":frmReglaMantenimiento:tblReglaFuentes">
									<f:setPropertyActionListener target="#{reglaBean.idReglaFuente}" 
										value="#{reglaFuenteDTO.id}" />
								</p:commandButton>
							</h:panelGrid>
						</p:column>
					</p:dataTable>
			</p:fieldset>
			<p:fieldset rendered="#{reglaBean.bolRenderedTipoEjecucion}" 
				id="fsFuenteSalida" 
				legend="Fuente Salida" 
				style="width:725px;height:100px;">
			<h:panelGrid id ="pnlFuenteSalida" 
				columns="4" 
				cellpadding="2" 
				cellspacing="2"  
				columnClasses="anchoGeneralInputText3, anchoGeneralInputText2, anchoGeneralInputText3, anchoGeneralInputText2, anchoGeneralInputTextFecha">
				<h:outputLabel rendered="#{reglaBean.bolMostrarCamposFuenteSalida}" 
					value="Entidad Salida" 
					styleClass="anchoGeneralInputText3" />
				<p:selectOneMenu rendered="#{reglaBean.bolMostrarCamposFuenteSalida}" 
					style="width: 98% !important;text-align: left;" 
					value="#{reglaBean.reglaFuenteSalidaDTO.claseEntidad}" >
						<f:selectItems value="#{reglaBean.listaEntidadesDTO}" var="selectLabel" 
							itemLabel="#{selectLabel.label}" 
							itemValue="#{selectLabel.idLabel}" /> 
								<p:ajax update=":frmReglaMantenimiento:dlgRelacion :frmReglaMantenimiento:pnlFuenteSalida"  
									event="change" 
									listener="#{reglaBean.recargarRelacionesSalida}"/>
				</p:selectOneMenu>	
				<h:outputLabel value="Fuente Salida" 
					styleClass="anchoGeneralInputText3" />
				<p:selectOneMenu  style="width: 98% !important;text-align: left;" 
					value="#{reglaBean.reglaFuenteSalidaDTO.idFuente}" >
					<f:selectItems value="#{reglaBean.listaFuentesSalidaDTO}" 
						var="selectItem" 
						itemLabel="#{selectItem.label}" 
						itemValue="#{selectItem.value}" /> 
						<p:ajax update=":frmReglaMantenimiento:dlgRelacion :frmReglaMantenimiento:pnlFuenteSalida :frmReglaMantenimiento:pnlRelacionar" 
							event="change" listener="#{reglaBean.recargarRelacionesSalida}"/>
				</p:selectOneMenu>		
				</h:panelGrid>
				<div class="botonera">
				<h:panelGrid id="pnlRelacionar" 
					columns="1" 
					columnClasses="botonera">
					<p:commandButton  rendered="#{reglaBean.bolMostrarCamposFuenteSalida}" 
						value="#{label['default.label.btnRelacionar']}" 
						actionListener="#{reglaBean.relacionarReglaFuenteSalida}" 
						oncomplete="mostrarDailog(xhr, status, args)" 
	  					update=":frmReglaMantenimiento:tblRelacionFuenteEntidad :frmReglaMantenimiento:dialogMensajePrincipal"/>
				</h:panelGrid>
				</div>
			</p:fieldset>
			</h:panelGrid>	
			<p:spacer width="10"/> 
			<div align="right">
				<p:commandButton  value="#{label['default.label.btnTest']}" 
					action="#{reglaBean.ejecutarTest}"  >
				</p:commandButton> 
				<p:spacer width="5"/> 
				<p:commandButton  value="#{label['default.label.btnGuardar']}"
					action="#{reglaBean.grabarRegla}" 
					oncomplete="dialogMensajeGrabar.show()" 
					update="frmReglaMantenimiento:dialogMensajeGrabar">
				</p:commandButton>
				<p:spacer width="5"/> 
				<p:commandButton  value="#{label['default.label.btnCancelar']}"  
					action="#{reglaBean.irAdministrarReglas}"  >
				</p:commandButton>
			</div> 
			<p:spacer width="10"/> 
	 	</p:panel>
	
	
		<p:dialog id="dlgRelacion" 
			width="550" 
			height="370"  
			modal="true" 
			closable="true" 
			resizable="false" 
			widgetVar="dlgRelacion"
			header="#{label['default.label.administrarReglas.lblFuenteVsEntidad']}" >
			<p:fieldset  id="fsFuenteVsEntidad" 
				legend="#{label['default.label.administrarReglas.lblRelacionar']}" 
				style="width:500px;height:350px;">
				<p:dataTable id="tblRelacionFuenteEntidad" 
					value="#{reglaBean.listaRelacionFuenteEntidadDTO}" 
					var="relacionFuenteEntidadDTO" 
					paginator="true" 
					rows="5" 
					editable="true" 
					editMode="cell" 
					rowIndexVar = "rowInfo" 
					lazy="true" 
					dynamic="true" 
					widgetVar="tblReglaFuentes" 
					emptyMessage="#{label['default.emty.busqueda']}" >   		   			
			   		<p:column style="width:6%; text-align: center;">
					   	<f:facet name="header">  
							<h:outputText value="#{label['default.label.administrarReglas.lblItem']}" />  
						</f:facet>  
							<h:outputText value="#{relacionFuenteEntidadDTO.item}"  />					
					</p:column>
			   		<p:column style="width:30%;">
					   <f:facet name="header">  
							<h:outputText value="Campos Fuente" />  
						</f:facet>  
							<h:outputText  value="#{relacionFuenteEntidadDTO.campoFuente}" /> 
					</p:column>
			   		<p:column style="width:30%;">
					   	<f:facet name="header">  
									      <h:outputText value="Campos Entidad" />  
									</f:facet>  
									<p:selectOneMenu style="width: 95% !important;text-align: left;" value="#{relacionFuenteEntidadDTO.campoEntidad}" >
									  	<f:selectItems value="#{reglaBean.listaCamposEntidadesDTO}" var="selectLabel" 
									  	itemLabel="#{selectLabel.label}" itemValue="#{selectLabel.idLabel}" /> 
						  			</p:selectOneMenu>						
							</p:column>
							  						
						
						</p:dataTable>
					<p:spacer width="10"/> 
						<div align="right">
							
							<p:commandButton  value="#{label['default.label.btnGuardar']}" action="#{reglaBean.guardarRelacionFuenteEntidad}" 
							oncomplete="dialogMensaje.show()" update="frmReglaMantenimiento:dialogMensaje" >
							
							</p:commandButton>
							<p:spacer width="5"/> 
							<p:commandButton  value="#{label['default.label.btnCancelar']}" action="#{reglaBean.cancelarRelacionFuenteEntidad}" oncomplete="dlgRelacion.hide()">
							
							</p:commandButton>
						</div> 
		</p:fieldset>
			
		
			</p:dialog>
			
			
			
			
			
			
			<p:dialog id="dialogMensaje" style="width:400px!important;top:250px !important;"  styleClass="centrarAlert" 
				severity="alert" widgetVar="dialogMensaje" modal="true" header="#{label['default.label.msgAlerta']}">
					
					
						<div style="text-align: center;vertical-align:middle; width: 100%; height: auto; padding-bottom: 10px;">
							<h:outputText value="#{reglaBean.mensajeAlerta}" /> 
						</div>
						<div style="text-align: center; width: 100%;vertical-align:middle; height: 25px">
							<p:commandButton value="#{label['default.label.btnAceptar']}" actionListener="#{reglaBean.validarResultado}" 
								oncomplete="handleLoginRequest(xhr, status, args)" />
						</div>
		
			</p:dialog>
	
			<p:dialog id="dialogMensajePrincipal" style="width:400px!important;top:250px !important;"  styleClass="centrarAlert" 
				severity="alert" widgetVar="dialogMensajePrincipal" modal="true" header="#{label['default.label.msgAlerta']}">
					
					<div style="text-align: center;vertical-align:middle; width: 100%; height: auto; padding-bottom: 10px;">
							<h:outputText value="#{reglaBean.mensajeAlerta}" /> 
					</div>  
					<div style="text-align: center; width: 100%;vertical-align:middle; height: 25px">     
						<p:commandButton value="#{label['default.label.btnAceptar']}" onclick="dialogMensajePrincipal.hide()"/>
			    	</div>
			</p:dialog>
			
			
			<p:dialog id="dialogMensajeGrabar" style="width:400px!important;top:250px !important;"  styleClass="centrarAlert" 
				severity="alert" widgetVar="dialogMensajeGrabar" modal="true" header="#{label['default.label.msgAlerta']}">
					       
				<div style="text-align: center;vertical-align:middle; width: 100%; height: auto; padding-bottom: 10px;">
					<h:outputText value="#{reglaBean.mensajeAlerta}" />  
				</div>
				<div style="text-align: center; width: 100%;vertical-align:middle; height: 25px">  
					<p:commandButton value="#{label['default.label.btnAceptar']}" 
					action="#{reglaBean.validarSave}" 
								/>
				</div>
			</p:dialog>
			
		</h:form>
	</ui:define>
</ui:composition>
   